/*
 * #%L
 * java model
 * %%
 * Copyright (C) 2009 - 2011 prefabware.com Stefan Isele
 * %%
 * All Rights Reserved.
 * This program is dual-licensed under the GNU General Public license
 * or a commercial license.
 * You may select to use one or the other of these licenses.
 * To obtain a commercial license please contact Stefan Isele at www.stefan-isele.de
 * Any modifications to this file must keep this entire header intact.
 * Redistribution, except as permitted by the selected license, is prohibited.
 * #L%
 */
package com.prefabware.jmodel.code;

/**
 * something that can directly be used as code
 * @author sisele_job
 *
 */
public interface JCodable {
	/**
	 * java code representing this object
	 * @param options control the apearance of the code, e.g use qualified names 
	 * @return returns null if the code for that object is undefined
	 * callers may need this information when chaining expressions and have to avoid empty elements 
	 */
	public String asCode(JCodeOptions options);
}
